Cách thức hoạt động Virus (máy tính)

Viết virus và chống virus tăng cường bảo mật là cuộc đấu tranh phức tạp và tốn kém giữa 2 giới lập trình. Tuy nhiên cách thức hoạt động của virus thì có thể được diễn giải khái quát như sau [1].

Các máy tính hoạt động bằng các chỉ thị (hay lệnh, instruction) ở dạng mã máy theo trình tự hợp lý để thực thi 1 công việc (task) nào đó. Mã máy là dãy số nhị phân và việc lập trình (hay thảo chương) trực tiếp mã máy rất nhức đầu, nên giới điện toán thiết kế ra các ngôn ngữ lập trình (như C, C++, Java,...) để người lập trình ứng dụng thảo chương bằng những ký hiệu và tên gọi dễ nhớ, sau đó dịch sang mã máy để máy thi hành. Nếu lập trình không hợp lý thì máy bị treo, không làm được gì.

Kỹ thuật lập trình dẫn đến những công việc xác định được lặp lại nhiều lần thường được tổ chức thành modul riêng gọi là "trình con", trong ngôn ngữ lập trình gọi là routine hay subroutine, và khi cần thực hiện công việc vốn ấn định cho routine đó thì trình đang chạy thực hiện lệnh gọi (call) đến routine đó để thực thi. Lệnh call có tham sốđịa chỉ routine trong bộ nhớ, khi thực thi lệnh call thì chuyển địa chỉ này vào con trỏ lệnh của CPU và trao quyền chạy cho routine đó. Cấu trúc routine có điểm vào (entry) là nơi bắt đầu, và điểm ra (exit) trả lại điều khiển cho trình gọi (caller) sau khi hoàn tất công việc.

Virus được viết ra là dạng 1 routine, thực hiện sửa tham số địa chỉ của một số lệnh call trỏ đến địa chỉ của nó, và kết thúc virus thì chuyển điều khiển đến routine vốn được gọi của trình. Những gì virus làm thì gói trong dãy mã lệnh virus, trong đó có kỹ năng tự sao lây nhiễm, và tùy thuộc trình độ người viết virus.

Sự tương tự của mã trình với mã ADN sinh học, và hoạt động của virus tin học, dẫn đến tên gọi "virus". Dẫu vậy sự khác nhau căn bản, là virus sinh học phát tác ngay và đồng thời trong tế bào, còn virus tin học chỉ phát tác khi được gọi với tư cách mã lệnh. Nếu nạp virus tin học với tư cách dữ liệu (data) vào bộ nhớ để xem (dump) thì nó không làm được gì cả. Nó cho thấy vai trò cảnh giác khi click vào file có virus (tức là có thể view, edit, delete,... nhưng đừng double click).

Trong thiết kế các máy tính địa chỉ các routine cơ bản được bố trí như sau:

  1. Địa chỉ các routine của máy chứa trong BIOS thì sau khởi động được đặt trong bộ nhớ ở nơi gọi là "bảng địa chỉ Interrupt".
  2. Khởi động của ổ đĩa (mềm, cứng, USB,...) được đặt ở boot sector, còn địa chỉ file trong ổ đĩa đặt ở bảng FAT của đĩa.

Virus lục lọi các bảng này để tìm cách thâm nhập thích hợp. Trước đây các virus thường ngắn, có thể gắn thêm vào tệp mã. Ngày nay virus có thể lưu trữ phần thân ở dạng file riêng và ẩn dấu đâu đó trong đĩa hoặc trên mạng, và nội dung file này có thể là dạng macro hoặc html. Các hệ điều hành đã tăng cường bảo mật những điểm dễ bị tấn công. Vì thế virus phải cố tìm các lỗ hổng bảo mật để xâm nhập, và việc tìm ra lỗ hổng đòi hỏi khả năng phân tích mã lệnh phức tạp hơn. Một số virus thì xuất hiện ở dạng chương trình tự lập, thực chất là phần mềm phá hoại, và thực hiện đánh lừa bằng cách hiện ra là 1 biểu tượng (icon) hay đường link để người thiếu cảnh giác click vào đó [1].

Liên quan